<?php

// 将 $_FILES["img"] 存到本地的目录 (/img/) 中, 并返回路径
// 如果 $_FILES["img"] 为 null , 则返回指为 null , $_FILES["img]["error"] > 0 (发生错误) 时, 返回 null
// 每一个图片的文件名都会根据 原文件名 + timestamp + rand() 做 md5 得到服务器中的文件名
function storeImgToLocal(): ?string {
    $img_file = $_FILES["img"];

    if ($img_file === null) {
        return null;
    }
    
    if ($img_file["error"] > 0) {
        return null;
    }

    $file_name_split = explode(".", $img_file["name"]);
    $file_name = $file_name_split[0];
    $file_suffix = $file_name_split[1];

    $timestamp = time();
    $rand_num = rand();
    $local_file_name = md5("$file_name$timestamp$rand_num");
    $local_file_path = "../../../img/$local_file_name.$file_suffix";

    if (!move_uploaded_file($img_file["tmp_name"], $local_file_path)) {
        return null;
    }

    $html_file_path = "/img/$local_file_name.$file_suffix";

    return $html_file_path;
}

?>